<html>
<body>

<?php
echo "Type an expression into the following box." 

?>


<form action="calculator.php" method="post">
Expression: <input type="text" name="expression" />
<input type="submit" />
</form> 


<?php 
$expression=$_POST["expression"]; 

function solve($expression)
{
if(preg_match("#[a-z]#i",$expression))
{
return "invalid expression.";
}
$a="- -";
$b="+";
$expression=str_replace($a, $b, $expression);

$num=array();
$pos=0;
for($i=0; $i<=strlen($expression); $i++)
{
	if(substr($expression, $i, 1)!="/" &&
 	substr($expression, $i, 1)!="*" &&
	substr($expression, $i, 1)!="+" &&
 	substr($expression, $i, 1)!="-" )
	{
	$num[$pos].=substr($expression, $i, 1);
	}
	else
	{	
	if($num[$pos]!=null)
	{
	$pos++;
	}
	$num[$pos]=substr($expression, $i, 1);
	$pos++;
	}
}

$sub=array();
$pos0=0;
for($i=0; $i<=$pos; $i++)
{
if($num[$i]=="-")
{
$sub[$pos0]="-".$num[$i+1];
$i++;
$pos0++;
}
else
{
$sub[$pos0]=$num[$i];
$pos0++;
}
}


$md=array();
$pos2=-1;
for($i=0; $i<=$pos0; $i++)
{

switch ($sub[$i])
{
case "*":
{
//echo $md[$pos2]."*".$sub[$i+1];
$md[$pos2]*=$sub[$i+1];

$i++;
break;
}

case "/":
{
if($sub[$i+1]==0)
{
return "division by 0 error.";
}

$md[$pos2]=$md[$pos2]/$sub[$i+1];
$i++;

break;
}

default:
{
$pos2++;
if($sub[$i]!=null)
$md[$pos2]=$sub[$i];
}
}


}

$ans=$md[0];
for($i=1; $i<=$pos2; $i++)
{
//echo $ans;
//echo $md[$i];
switch ($md[$i])
{
case "+":
{
$ans+=$md[$i+1];
$i++;
break;
}

case "-":
{
$ans-=$md[$i+1];
$i++;
break;
}
default:
}
}

//print_r($num);
//print_r($sub);	
//print_r($md);

return $ans;
}

echo "the answer is ".solve($expression);


?> 


</body>
</html>
